import java.awt.Graphics;

public class Jugador extends Elemento implements Movible{

	int puntaje, pasoEnX, pasoEnY;
	
	public Jugador(int x, int y){
		super(x,y);
		puntaje = 0;
		pasoEnX = 0;
		pasoEnY = 0;
	}
	
	public boolean vive(){
		return vida;
	}
	
	public void interactuar_corazon_ajeno(CorazonAjeno corazon){
		if (this.getCoordenadas().equals(corazon.getCoordenadas())){
			vida = false;
		}
	}
	
	public void interactuar_corazon_novio(CorazonNovio corazon){
		if (this.getCoordenadas().equals(corazon.getCoordenadas())){
			corazon.interactuar_jugador(this);
		}
	}
		
		
	public void aumentarPuntaje(){
		puntaje += 1;
	}
		
	
	/* Fijar destinos. El jugador puede moverse solo horizontalmene */
	public void fijarDestinoIzquierda(){pasoEnX = 1;}
	public void fijarDestinoDerecha(){pasoEnX = -1;}

	@Override
	public Coordenadas obtenerDestino() {
		int coordX = this.getCoordenadas().getCoordenadaX();
		int coordY = this.getCoordenadas().getCoordenadaY();
		int nuevoX = coordX - pasoEnX;
		pasoEnX = 0;
		Coordenadas nuevasCoordenadas = new Coordenadas(nuevoX, coordY);
		
		return nuevasCoordenadas;
	}

	@Override
	public <U extends Elemento & Movible> void mover(U e) {}
	
	public void pintar(Graphics G){
		VistaJugador.pintar(G);
	}

	public int obtenerPuntaje() { return puntaje; }

}
